package com.mhtube.entity.po;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

/**
* 视频表
* @TableName video
*/
public class Video implements Serializable {

    /**
    * 视频ID
    */
    @NotBlank(message="[视频ID]不能为空")
    @Size(max= 15,message="编码长度不能超过15")
    @ApiModelProperty("视频ID")
    @Length(max= 15,message="编码长度不能超过15")
    private String videoId;
    /**
    * 发布者ID
    */
    @NotBlank(message="[发布者ID]不能为空")
    @Size(max= 15,message="编码长度不能超过15")
    @ApiModelProperty("发布者ID")
    @Length(max= 15,message="编码长度不能超过15")
    private String userId;
    /**
    * 视频标题
    */
    @NotBlank(message="[视频标题]不能为空")
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("视频标题")
    @Length(max= 100,message="编码长度不能超过100")
    private String videoTitle;
    /**
    * 视频简介
    */
    @NotBlank(message="[视频简介]不能为空")
    @Size(max= 200,message="编码长度不能超过200")
    @ApiModelProperty("视频简介")
    @Length(max= 200,message="编码长度不能超过200")
    private String description;
    /**
     * 视频上传时间
     */
    @NotNull(message="[视频上传时间]不能为空")
    @ApiModelProperty("视频上传时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date uploadDate;
    public Date getUploadDate() {
        return uploadDate;
    }

    public void setUploadDate(Date uploadDate) {
        this.uploadDate = uploadDate;
    }

    /**
    * 视频对应的请求地址
    */
    @Size(max= 100,message="编码长度不能超过100")
    @ApiModelProperty("视频对应的请求地址")
    @Length(max= 100,message="编码长度不能超过100")
    private String url;
    /**
    * 视频播放数
    */
    @NotNull(message="[视频播放数]不能为空")
    @ApiModelProperty("视频播放数")
    private Integer playNum;
    /**
    * 点赞数
    */
    @NotNull(message="[点赞数]不能为空")
    @ApiModelProperty("点赞数")
    private Integer likesNum;
    /**
    * 被收藏数
    */
    @NotNull(message="[被收藏数]不能为空")
    @ApiModelProperty("被收藏数")
    private Integer collectedNum;

    /**
     * 拥有用户
     */
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    /**
    * 视频ID
    */
    public void setVideoId(String videoId){
    this.videoId = videoId;
    }

    /**
    * 发布者ID
    */
    public void setUserId(String userId){
    this.userId = userId;
    }

    /**
    * 视频标题
    */
    public void setVideoTitle(String videoTitle){
    this.videoTitle = videoTitle;
    }

    /**
    * 视频简介
    */
    public void setDescription(String description){
    this.description = description;
    }

    /**
    * 视频对应的请求地址
    */
    public void setUrl(String url){
    this.url = url;
    }

    /**
    * 视频播放数
    */
    public void setPlayNum(Integer playNum){
    this.playNum = playNum;
    }

    /**
    * 点赞数
    */
    public void setLikesNum(Integer likesNum){
    this.likesNum = likesNum;
    }

    /**
    * 被收藏数
    */
    public void setCollectedNum(Integer collectedNum){
    this.collectedNum = collectedNum;
    }


    /**
    * 视频ID
    */
    public String getVideoId(){
    return this.videoId;
    }

    /**
    * 发布者ID
    */
    public String getUserId(){
    return this.userId;
    }

    /**
    * 视频标题
    */
    public String getVideoTitle(){
    return this.videoTitle;
    }

    /**
    * 视频简介
    */
    public String getDescription(){
    return this.description;
    }

    /**
    * 视频对应的请求地址
    */
    public String getUrl(){
    return this.url;
    }

    /**
    * 视频播放数
    */
    public Integer getPlayNum(){
    return this.playNum;
    }

    /**
    * 点赞数
    */
    public Integer getLikesNum(){
    return this.likesNum;
    }

    /**
    * 被收藏数
    */
    public Integer getCollectedNum(){
    return this.collectedNum;
    }

}
